#include <cstdio>

inline bool Get(int row, int col, int n, int m) {
    return row >= 0 && row < n && col >= 0 && col < m;
}

/**
 * 时间复杂度：O(mn)
 * 空间复杂度：O(1)
 * 
 * 马的管辖
 *
 * @return
 */
int main() {
    char arr[110][110]{};

    int n, m;
    scanf("%d%d", &n, &m);

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            arr[i][j] = '.';
        }
    }

    int x, y;
    scanf("%d%d", &x, &y);
    arr[--x][--y] = '#';

    if (Get(x - 2, y - 1, n, m)) {
        arr[x - 2][y - 1] = '#';
    }
    if (Get(x - 2, y + 1, n, m)) {
        arr[x - 2][y + 1] = '#';
    }
    if (Get(x - 1, y - 2, n, m)) {
        arr[x - 1][y - 2] = '#';
    }
    if (Get(x - 1, y + 2, n, m)) {
        arr[x - 1][y + 2] = '#';
    }
    if (Get(x + 2, y - 1, n, m)) {
        arr[x + 2][y - 1] = '#';
    }
    if (Get(x + 2, y + 1, n, m)) {
        arr[x + 2][y + 1] = '#';
    }
    if (Get(x + 1, y - 2, n, m)) {
        arr[x + 1][y - 2] = '#';
    }
    if (Get(x + 1, y + 2, n, m)) {
        arr[x + 1][y + 2] = '#';
    }

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            printf("%c", arr[i][j]);
        }
        printf("\n");
    }

    return 0;
}